<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <script src="lib/vue.global.js"></script>
</head>
<body>
  <div id="root">
    num: {{ num }}
    <my-title @my-event="getData"></my-title>
  </div>
</body>
<script>
   /**
    1.在父组件调用子组件的地方，绑定一个自定义的事件，
    该事件由父组件实现，该事件的默认参数就是子组件传递给父组件的数据
  */
  // 2.在子组件的某一个事件内部，
  // 通过 this.$emit('自定义的事件名', 参数) 完成值的传递
  const myTitle = {
    data () {
      return {
        count: 10
      }
    },
    template: `
      <div>
        <button @click="sendData">click</button> {{ count }}
      </div>
    `,
    methods: {
      sendData () {
        this.count += 10
        this.$emit('my-event', this.count)
      }
    }
  }

  const { createApp } = window.Vue
  const app = createApp({
    data () {
      return {
        num: 1
      }
    },
    methods: {
      getData (val) {
        this.num = val
      }
    },
    components: {
      myTitle
    }
  })
  app.mount('#root')
</script>
</html>